home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
Method
/
Functor.h
< prev
next >
Wrap
Text File
|
2000-06-23
|
4KB
|
164 lines
// Functor.h
#ifndef Functor_h
#define Functor_h
template < class Signature >
class Functor
{
private:
// not implemented:
Functor( const Functor& );
void operator=( const Functor& );
};
template < class R >
class Functor< R (*)() >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()() = 0;
};
template < class R, class P0 >
class Functor< R (*)( P0 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0 ) = 0;
};
template < class R, class P0, class P1 >
class Functor< R (*)( P0, P1 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1 ) = 0;
};
template < class R, class P0, class P1, class P2 >
class Functor< R (*)( P0, P1, P2 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3 >
class Functor< R (*)( P0, P1, P2, P3 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3, class P4 >
class Functor< R (*)( P0, P1, P2, P3, P4 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3, P4 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3, class P4,
class P5 >
class Functor< R (*)( P0, P1, P2, P3, P4, P5 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3, P4, P5 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3, class P4,
class P5, class P6 >
class Functor< R (*)( P0, P1, P2, P3, P4, P5, P6 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3, P4, P5, P6 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3, class P4,
class P5, class P6, class P7 >
class Functor< R (*)( P0, P1, P2, P3, P4, P5, P6, P7 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3, P4, P5, P6, P7 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3, class P4,
class P5, class P6, class P7, class P8 >
class Functor< R (*)( P0, P1, P2, P3, P4, P5, P6, P7, P8 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3, P4, P5, P6, P7, P8 ) = 0;
};
template < class R, class P0, class P1, class P2, class P3, class P4,
class P5, class P6, class P7, class P8, class P9 >
class Functor< R (*)( P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 ) >
{
protected:
Functor() {}
Functor( const Functor& ) {}
~Functor() {}
void operator=( const Functor& ) {}
public:
virtual R operator()( P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 ) = 0;
};
#endif